# encoding=utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')

class FT_0706:
    Alarm1=[
            [
            ["疲劳驾驶","正常","已疲劳状态","预留","无效值"],
            ["当天累计驾驶超时","正常","已超时","预留","无效值"],
            ["进出区域","正常","进入区域","驶出区域","无效值"],
            ["进出线路","正常","进入线路","驶出线路","无效值"]
            ],
            [
            ["路线偏离","正常","路线偏离","预留","无效值"],
            ["终端主电源状态","正常","主电源欠压","主电源掉电","无效值"],
            ["GNSS模块故障","正常","GNSS模块故障","预留","无效值"],
            ["GNSS天线状态","正常","GNSS天线开路","GNSS天线短路","无效值"]
            ],
            [
            ["车辆VSS故障","正常","VSS故障","预留","无效值"],
            ["车辆油量异常","正常","油量异常","预留","无效值"],
            ["车辆被盗(车辆防盗器)","正常","车辆被盗","预留","无效值"],
            ["车辆非法点火","正常","车辆非法点火","预留","无效值"]
            ],
            [
            ["车辆非法位移","正常","车辆非法位移","预留","无效值"],
            ["碰撞报警","正常","碰撞报警","预留","无效值"],
            ["侧翻报警","正常","侧翻报警","预留","无效值"],
            ["终端LCD或显示屏故障","正常","显示屏故障","预留","无效值"]
            ],
            [
            ["TTS模块故障","正常","TTS模块故障","预留","无效值"],
            ["6轴传感器","正常","6轴传感器异常","预留","无效值"],
            ["加密模块","正常","加密模块异常","预留","无效值",],
            ["司机卡模块状态","正常","模块异常","预留","无效值"]
            ],
            [
            ["USB导出接口","正常","接口异常","预留","无效值"],
            ["RS232导出接口","正常","接口异常","预留","无效值"],
            ["摄像头1状态","正常","摄像头1故障","预留","无效值"],
            ["摄像头2状态","正常","摄像头2故障","预留","无效值"]
            ],
            [
            ["摄像头3状态","正常","摄像头3故障","预留","无效值"],
            ["摄像头4状态","正常","摄像头4故障","预留","无效值"],
            ["摄像头5状态","正常","摄像头5故障","预留","无效值"],
            ["摄像头6状态","正常","摄像头6故障","预留","无效值"]
            ]
        ]
    Alarm2=[
            [
            ["燃料指示器1中的水","无水","含水","预留","无效值"],
            ["发动机黄色警告灯命令","灯灭，无严重故障","灯亮，严重故障","预留","无效值"],
            ["发动机红色警告灯命令","灯灭，无严重故障","灯亮，严重故障","预留","无效值"],
            ["OBD故障指示灯的命令","灯灭，无排放故障","灯亮，排放故障","预留","无效值"]
            ],
            [
            ["空滤阻塞报警","未阻塞","阻塞报警","预留","无效值"],
            ["水温高报警灯状态","正常","报警","预留","无效值"],
            ["刹车蹄片磨损报警","未磨损","磨损报警","故障","无效值"],
            ["驾驶室未锁止状态","锁止","未锁止","预留","无效值"],
            ],
            [
            ["制动灯故障(灯丝烧断)","正常","故障","预留","无效值"],
            ["气压过低报警状态","正常","报警","预留","无效值"],
            ["制动系统失效","正常","制动系统故障","预留","无效值"],
            ["真空度低报警","正常","报警","预留","无效值"],
            ],
            [
            ["驻车气路气压低报警开关","正常","报警","预留","无效值"],
            ["刹车片磨损","未磨损","磨损报警","故障","无效值"],
            ["货箱倾翻指示","未侧翻","侧翻","故障","无效值"],
            ["驾驶室锁止","锁止","未锁止","故障","无效值"],
            ],
            [
            ["轮间差速锁","未工作","工作","故障","无效值"],
            ["轴间差速锁","未工作","工作","故障","无效值"],
            ["取力器","未工作","工作","故障","无效值"],
            ["驻车制动(手刹)","松开","拉起","故障","无效值"],
            ],
            [
            ["随动转向锁止","未工作","工作","故障","无效值"],
            ["转向液位低","液位正常","液位低报警","故障","无效值"],
            ["空滤堵塞","未阻塞","阻塞报警","故障","无效值"],
            ["安全带报警","已系","未系","故障","无效值"],
            ],
            [
            ["制动/离合液位低","正常","液位低报警","预留","无效值"],
            ["安全带状态(是否系)","已系","未系","故障","无效值"],
            ["协议中","","","",""],
            ["发动机冷却液位低","液位正常","液位低报警","故障","无效值"]
            ]
        ]
    Switch1 = [
        [
            ["ACC状态", "正常", "ACC_ON开", "ACC_ON状态错误", "无效值"],
            ["IG_ON状态", "正常", "IG_ON开", "IG_ON状态错误", "无效值"],
            ["定位状态", "定位无效", "定位有效", "漂移", "无效值"],
            ["车门锁", "车门锁开", "车门落锁", "预留", "无效值"]
        ],
        [
            ["CAN总线1状态", "已连接", "未连接", "预留", "无效值"],
            ["CAN总线2状态", "已连接", "未连接", "预留", "无效值"],
            ["CAN总线3状态", "已连接", "未连接", "预留", "无效值"],
            ["UART总线1状态", "已连接", "未连接", "预留", "无效值"]
        ],
        [
            ["UART总线2状态", "已连接", "未连接", "预留", "无效值"],
            ["RS485总线连接", "已连接", "未连接", "预留", "无效值"],
            ["终端网络链接状态", "已联网", "未联网", "预留", "无效值"],
            ["锁车状态", "正常", "发动机限转速", "发动机限启动", "无效值"]
        ]
    ]
    Switch2 = [
        [
            ["近光灯输出状态(ICU)", "关", "开", "故障", "无效值"],
            ["左转向灯状态", "关", "开", "预留", "无效值"],
            ["前雾灯输出状态", "关", "开", "预留", "无效值"],
            ["门锁电机工作状态(开锁,闭锁)", "闭合", "锁止", "解锁", "无效值"]
        ],
        [
            ["手动变速箱倒档开关", "非倒档", "倒档", "预留", "无效值"],
            ["远光灯输出状态(ICU)", "关", "开", "故障", "无效值"],
            ["门碰开关/驾驶员门状态", "关", "开", "预留", "无效值"],
            ["后雾灯输出状态", "关", "开", "预留", "无效值"]
        ],
        [
            ["近光灯输出状态(BCM)", "关", "开", "故障", "无效值"],
            ["手刹开关状态", "手刹未拉起", "手刹拉起", "故障", "无效值"],
            ["制动开关状态", "未踩下", "踩下", "故障", "无效值"],
            ["离合开关状态", "未踩下", "踩下", "故障", "无效值"]
        ],
        [
            ["制动灯输出状态", "关", "开", "故障", "无效值"],
            ["右转向灯输出状态", "关", "开", "故障", "无效值"],
            ["左转向灯输出状态", "关", "开", "故障", "无效值"],
            ["远光灯输出状态(BCM)", "关", "开", "故障", "无效值"]
        ],
        [
            ["燃油加热指示", "未工作", "工作", "故障", "无效值"],
            ["倒档开关", "非倒档", "倒档", "故障", "无效值"],
            ["变速箱低挡", "非低档", "低档", "故障", "无效值"],
            ["变速箱空挡", "非空档", "空档", "故障", "无效值"]
        ],
        [
            ["ASR发动机控制激活", "正常未起作用", "ASR发动机控制起作用", "故障", "无效值"],
            ["ASR制动控制激活", "正常未起作用", "ASR制动控制起作用", "故障", "无效值"],
            ["ABS激活", "正常未起作用", "防抱死系统激活", "故障", "无效值"],
            ["EBS制动开关", "正常未起作用", "电子制动系统起作用", "故障", "无效值"]
        ],
        [
            ["右转向灯状态", "关", "开", "预留", "无效值"],
            ["挂车手制动开关", "手刹未拉起", "手刹拉起", "故障", "无效值"],
            ["辅助制动灯工作指示", "未工作", "工作", "故障", "无效值"],
            ["喇叭请求状态", "关", "开", "预留", "无效值"]
        ],
        [
            ['机械开闭锁信号','关','锁止','解锁','无效值'],
            ['发动机制动激活信号','关','开','预留','无效值'],
            ['协议中','','','',''],
            ['协议中', '', '', '', '']
        ]

    ]
    Status2 = [
        [
            ["后雾灯开关", "关", "开", "未定义", "无效值"],
            ["前雾灯开关", "关", "开", "未定义", "无效值"],
            ["近光灯开关", "关", "开", "未定义", "无效值"],
            ["远光灯开关", "关", "开", "未定义", "无效值"]
        ],
        [
            ["VDC完全工作指示", "未完全", "完全", "未定义", "无效值"],
            ["司机侧门窗开关信号", "关", "开", "未定义", "无效值"],
            ["危险报警灯开关", "关", "开", "未定义", "无效值"],
            ["驾驶员侧门碰开关", "门关", "门开", "未定义", "无效值"]
        ],
        [
            ["乘客侧门碰开关", "门关", "门开", "未定义", "无效值"],
            ["", "", "", "", ""],
            ["顶灯状态", "关", "开", "未定义", "无效值"],
            ["前雾灯状态", "关", "开", "未定义", "无效值"]
        ],
        [
            ["后雾灯状态", "关", "开", "未定义", "无效值"],
            ["安全带未系提醒", "未系", "已系", "错误", "无效值"],
            ["中控门锁开关", "关", "开", "未定义", "无效值"],
            ["司机侧右前门窗开关信号", "关", "开", "未定义", "无效值"]
        ]
    ]
    Speed = [["车速（发动机）:", "4"], ["车速（仪表）:", "4"], ["发动机燃油消耗率(平均):", "4"], ["发动机瞬时油耗率（平均）:", "4"], ["发动机转速:", "4"],
             ["油门开度:", "2"],['变速箱输出轴转速：','4'],['变速箱挡位：','2']]
    FuelFonsumption = [["平均油耗(仪表计算):", "4"], ["NOx传感器浓度:", "4"], ["剩余油量百分比（BCM）:", "2"], ["剩余油量百分比:", "2"],
                       ["燃油液位:", "2"], ["燃油液位(ICU):", "2"],
                       ["后桥气压传感器信号:", "2"], ["前桥气压传感器信号:", "2"], ["前桥气路气压:", "2"], ["后桥气路气压:", "2"],
                       ["发动机燃油消耗率:","4"], ["发动机瞬时消耗率:","4"], ["发动机平均油耗率:","4"], ["尿素液位(ECM):","2"], ["尿素箱温度(ECM):","2"],
                       ["尿素液位(SCR):", "2"], ["尿素箱温度(SCR):", "2"], ["发动机燃油消耗率（累积）:", "8"],["实际添蓝喷射量:", "8"], ["尿素泵工作状态:", "2"], ["计量泵实际状态:", "2"], ["尿素泵转速:", "4"],
                       ["电机转速测量值:", "4"], ["进气氧含量:", "4"],
                       ["SCR进气含氧量:", "4"], ["SCR NOx  传感器浓度（上游）:", "4"], ["排气氧含量:", "4"], ["SCR排气氧含量:", "4"],
                       ["废弃质量流量:","4"], ["SCR后处理1进气温度（SCR）:","4"], ["SCR后处理1出口温度（SCR）:","4"]]
    Power = [["发动机期望转速:", "4"], ["发动机参考扭矩:", "4"], ["发动机废气再循环1质量流率:", "4"], ["发动机进气空气质量流量:","4"], ["发动机燃油轨压力命令:","4"],
            ["驾驶指令扭矩百分比:", "2"], ["发动机实际转矩百分比:", "2"], ["发动机实际转矩百分比（分数部分）:", "2"], ["发动机>需求扭矩百分比:", "2"], ["当前转速下负荷百分比:","2"],
            ["实际最大可用发动机转矩百分比:", "2"], ["摩擦力扭矩百分比:", "2"], [">巡航设定车速:", "2"], ["节气门开度:", "2"],["传动轴目前档位:", "2"],
            ["当前档位:", "2"], ["前桥左轮速度:", "4"], ["前桥右轮速度:", "4"], ["后桥左轮速度:", "4"], ["后桥右轮速度:", "4"],["估计发动机寄生损失","2"],["估计泵送百分比扭矩","2"]]
    Condition = [["机油温度:", "4"], ["大气温度:", "4"], ["排气温度:", "4"], ["ECM输入电压:", "4"], ["蓄电池电压:", "4"],
                 ["SCR后处理1进气温度:", "4"],
                 ["SCR后处理1出口温度:", "4"], ["风扇转速:", "4"], ["发动机冷却水温度:", "2"], ["燃油温度:", "2"], ["发动机机油液位:", "2"],
                 ["机油压力:", "2"], ["冷却剂液位:", "2"], ["大气压力:", "2"], ["增压器压力:", "2"],
                 ["进气歧管温度:", "2"], ["进气压力信号:", "2"], ["柴油机排气后处理液罐加热器:", "2"], ["发动机请求风扇1的转速:", "2"], ["发动机降扭请求:", "2"],
                 ["NOx传感器浓度(上游):", "4"],
                 ["空气质量流量:", "4"], ["DPF压差:", "4"], ["胎温:", "4"], ["输出轴转速:", "4"], ["缓速器实际降扭百分比_0F:", "2"],
                 ["缓速器实际降扭百分比_10:", "2"], ["方向盘转角:", "4"],["DPF排气温度:", "4"], ["DPF进气压力:", "2"], ["DPF进气温度:", "4"], ["催化剂上游温度:", "4"]]
    Accumulation = [["发动机累计运行时间:", "8"], ["发动机累计转数:", "8"], ["发动机累计怠速燃油消耗量:", "8"], ["发动机累计怠速时间:","8"], ["发动机短程燃油消耗量:","8"], ["发动机累计燃油消耗量:","8"],
    ["高精度里程(VDR):", "8"], ["高精度里程(ICU):", "8"], ["高精度里程(ECM):", "8"], ["发动机运行总时间:", "8"], ["低精>度里程(ECM):", "8"], ["整车重量:", "8"], ["发动机从启动开始运行的时间:", "4"]]
    Status1 = [["发动机扭矩模式:", "2"], ["DPF热能管理活动:", "2"], ["巡航控制激活状态标识:", "2"], ["巡航使能开关:", "2"], ["巡航设定开关:", "2"],
               ["PTO状态:", "2"], ["巡航控制状态:", "2"], ["加速器连锁开关:", "2"], ["风扇状态:", "2"],
               ["发动机工作状态:", "2"], ["空调高压风机开关:", "2"], ["右门锁反馈信号:", "2"], ["左门锁电机工作状态（开锁，闭锁）:", "2"], ["后处理1进气露点:", "2"],
               ["后处理1烟气露点:", "2"], ["雨刮档位:", "2"], ["洗涤:", "2"], ["左侧门窗升降状态:", "2"],
               ["右侧门窗升降状态:", "2"], ["转向灯开关:", "2"], ["遥控信号:", "2"], ["遥控状态(开、闭、寻车):", "2"], ["偏向控制发动机激活:", "2"],["顶置空调当前设定温度","2"],["顶置空调当前开闭状态","2"],["起动机模式","2"]]
    Transmission_Info = [["传动系接合:","2"],["换挡进行状态:","2"],["输出轴速度:","4"],["离合器滑动百分比:","2"],["输入轴速度:","4"],["传动选择齿轮:","2"],["变速器实际传动比:","4"]]
    Status3 = [
            ["DPF灯指令:", "2"],
            ["DPF主动再生状态:", "2"],
            ["燃气转化开关状态:", "2"],
            ["减压阀状态:", "2"],
            ["CNG状态:", "2"]
    ]
    Gas_Info =[["燃气温度:","2"],["燃气压力:","2"],["气瓶压力:","2"],["减压阀水温:","2"],["EGR伐位置:","4"]]
    Brock_BasicInfo = [["副发动机转速:","4"],["副发动机水温:","2"],["副发动机机油压力:","2"],["副发累计工作时间:","8"],["副发动小时燃油消耗率:","4"],["清水箱水位电阻:","4"],["负压传感器电压:","4"],["负压值:","2"],["清水箱水位电流:","4"],["清水箱水位:","2"],["扫盘调速电流输出:","4"],["疯跑调速电位:","4"],["副发调速电位:","4"],["风机比率泵输出电流:","4"]]
    Brock_Statu_Alarm1=[
            [
            ["副发动机水温高报警","无","有","预留","无效"],
            ["副发动机机油压力低报警","无","有","预留","无效"],
            ["副发动机不发电报警","无","有","预留","无效"],
            ["副发动机一般故障报警","无","有","预留","无效"]
            ],
            [
            ["副发动机严重故障报警","无","有","预留","无效"],
            ["副发动机预热指示","无","有","预留","无效"],
            ["副发油中有水报警","无","有","预留","无效"],
            ["滚扫升降控制信号","无","有","预留","无效"]
            ],
            [
            ["回油滤芯堵塞报警输入信号","无","有","预留","无效"],
            ["液压油泄露报警输入信号","无","有","预留","无效"],
            ["倒车输入信号","无","有","预留","无效"],
            ["小灯输入信号","无","有","预留","无效"]
            ],
            [
            ["空滤堵塞输入信号","无","有","预留","无效"],
            ["滤筒压力过低输入信号","无","有","预留","无效"],
            ["严重故障输入信号","无","有","预留","无效"],
            ["一般故障输入信号","无","有","预留","无效"]
            ],
            [
            ["不发电指示输入信号","无","有","预留","无效"],
            ["预热指示输入信号","无","有","预留","无效"],
            ["副发机油压力输入信号","无","有","预留","无效"],
            ["总水阀打开输入信号","无","有","预留","无效"]
            ],
            [
            ["箱体撑杆放下输入信号","无","有","预留","无效"],
            ["左角喷开关输入信号","无","有","预留","无效"],
            ["右角喷开关输入信号","无","有","预留","无效"],
            ["污水箱满输入信号","无","有","预留","无效"]
            ],
            [
            ["离线除尘开关输入信号","无","有","预留","无效"],
            ["晴雨天模式切换开关输入信号","无","有","预留","无效"],
            ["尾门打开输入信号","无","有","预留","无效"],
            ["右角喷控制输出","无","有","预留","无效"]
            ],
            [
            ["右照明灯控制输出","无","有","预留","无效"],
            ["9-2-7-2-3","无","有","预留","无效"],
            ["9-2-7-4-5","无","有","预留","无效"],
            ["左角喷控制输出","无","有","预留","无效"]
            ]
        ]
    Brock_Statu_Alarm2=[
            [
            ["检修盒扫盘上升控制信号","无","有","预留","无效"],
            ["检修盒扫盘下降控制信号","无","有","预留","无效"],
            ["检修盒扫盘伸出控制信号","无","有","预留","无效"],
            ["检修盒扫盘缩回控制信号","无","有","预留","无效"]
            ],
            [
            ["检修盒吸嘴上升控制信号","无","有","预留","无效"],
            ["检修盒吸嘴下降控制信号","无","有","预留","无效"],
            ["","","","",""],
            ["","","","",""]
            ],
            [
            ["隔膜泵1控制信号输出","无","有","预留","无效"],
            ["隔膜泵2控制信号输出","无","有","预留","无效"],
            ["隔膜泵3控制信号输出","无","有","预留","无效"],
            ["低压水路总阀控制输出","无","有","预留","无效"]
            ],
            [
            ["高压水泵结合控制输出","无","有","预留","无效"],
            ["主离合脱开控制输出","无","有","预留","无效"],
            ["高压水卸荷控制输出","无","有","预留","无效"],
            ["预热控制信号输出","无","有","预留","无效"]
            ],
            [
            ["后喷雾控制输出","无","有","预留","无效"],
            ["箱体清淤控制输出","无","有","预留","无效"],
            ["左喷杆喷水控制输出","无","有","预留","无效"],
            ["右喷杆喷水控制输出","无","有","预留","无效"]
            ],
            [
            ["吸嘴喷杆喷水控制输出","无","有","预留","无效"],
            ["滚扫提升控制信号输出","无","有","预留","无效"],
            ["滚扫旋转控制信号输出","无","有","预留","无效"],
            ["挡沙机构放下控制输出","无","有","预留","无效"]
            ],
            [
            ["总气阀控制输出","无","有","预留","无效"],
            ["脉冲阀组1控制输出","无","有","预留","无效"],
            ["脉冲阀组2控制输出","无","有","预留","无效"],
            ["脉冲阀组3控制输出","无","有","预留","无效"]
            ],
            [
            ["脉冲阀组4控制输出","无","有","预留","无效"],
            ["脉冲阀组5控制输出","无","有","预留","无效"],
            ["脉冲阀组6控制输出","无","有","预留","无效"],
            ["脉冲阀组7控制输出","无","有","预留","无效"]
            ]
        ]
    Brock_Statu_Alarm3=[
            [
            ["脉冲阀组8控制输出","无","有","预留","无效"],
            ["副发启动控制输出","无","有","预留","无效"],
            ["副发启动准备输出","无","有","预留","无效"],
            ["内喇叭却换控制输出","无","有","预留","无效"]
            ],
            [
            ["晴雨天模式切换控制输出","无","有","预留","无效"],
            ["左喷杆摆出控制输出","无","有","预留","无效"],
            ["右喷杆摆出控制输出","无","有","预留","无效"],
            ["扫盘中速控制输出","无","有","预留","无效"]
            ],
            [
            ["扫盘低速控制输出","无","有","预留","无效"],
            ["左扫盘旋转控制输出","无","有","预留","无效"],
            ["右全扫盘旋转控制输出","无","有","预留","无效"],
            ["左全扫盘旋转控制输出","无","有","预留","无效"]
            ],
            [
            ["左扫盘下降控制输出","无","有","预留","无效"],
            ["左扫盘上升控制输出","无","有","预留","无效"],
            ["右扫盘下降控制输出","无","有","预留","无效"],
            ["右扫盘上升控制输出","无","有","预留","无效"]
            ],
            [
            ["左扫盘摆出控制输出","无","有","预留","无效"],
            ["左扫盘收回控制输出","无","有","预留","无效"],
            ["右扫盘摆出控制输出","无","有","预留","无效"],
            ["右扫盘收回控制输出","无","有","预留","无效"]
            ],
            [
            ["液压卸荷阀控制输出","无","有","预留","无效"],
            ["吸嘴微动下降控制输出","无","有","预留","无效"],
            ["吸嘴微动上升控制输出","无","有","预留","无效"],
            ["吸嘴下降控制输出","无","有","预留","无效"]
            ],
            [
            ["吸嘴上升控制输出","无","有","预留","无效"],
            ["垃圾箱下降控制输出","无","有","预留","无效"],
            ["垃圾箱举升控制输出","无","有","预留","无效"],
            ["垃圾箱尾门打开控制输出","无","有","预留","无效"]
            ],
            [
            ["垃圾箱尾门关闭控制输出","无","有","预留","无效"],
            ["左警示灯控制输出","无","有","预留","无效"],
            ["右警示灯控制输出","无","有","预留","无效"],
            ["左照明灯控制输出","无","有","预留","无效"]
            ]
        ]
    Brock_Statu_Alarm4=[
            [
            ["液压油泄露请停机检查报警","无","有","预留","无效"],
            ["副发机油压力故障请停机检查报警","无","有","预留","无效"],
            ["副发不发电请停机检查报警信号","无","有","预留","无效"],
            ["液压油滤堵塞请停机检查报警信号","无","有","预留","无效"]
            ],
            [
            ["出水阀门关闭不能清洗作业报警信号","无","有","预留","无效"],
            ["清水箱水位低不能清洗作业报警信号","无","有","预留","无效"],
            ["副发水温过高请停机检查报警信号","无","有","预留","无效"],
            ["污水箱满请停止作业报警信号","无","有","预留","无效"]
            ],
            [
            ["副发启停控制信号","无","有","预留","无效"],
            ["副发加速控制信号","无","有","预留","无效"],
            ["副发减速控制信号","无","有","预留","无效"],
            ["加强作业控制信号","无","有","预留","无效"]
            ],
            [
            ["垃圾箱尾门打开控制信号","无","有","预留","无效"],
            ["垃圾箱尾门关闭控制信号","无","有","预留","无效"],
            ["垃圾箱举升控制信号","无","有","预留","无效"],
            ["垃圾箱下降控制信号","无","有","预留","无效"]
            ],
            [
            ["照明灯打开控制信号","无","有","预留","无效"],
            ["左警示灯打开控制信号","无","有","预留","无效"],
            ["右警示灯打开控制信号","无","有","预留","无效"],
            ["音乐打开控制信号","无","有","预留","无效"]
            ],
            [
            ["扫盘低速控制信号","无","有","预留","无效"],
            ["扫盘中速控制信号","无","有","预留","无效"],
            ["纯吸模式控制信号","无","有","预留","无效"],
            ["降尘关闭控制信号","无","有","预留","无效"]
            ],
            [
            ["左侧作业控制信号","无","有","预留","无效"],
            ["两侧作业控制信号","无","有","预留","无效"],
            ["右侧作业控制信号","无","有","预留","无效"],
            ["检修模式控制信号","无","有","预留","无效"]
            ],
            [
            ["喷雾喷枪控制信号","无","有","预留","无效"],
            ["箱体清淤控制信号","无","有","预留","无效"],
            ["洗扫模式控制信号","无","有","预留","无效"],
            ["纯洗模式控制信号","无","有","预留","无效"]
            ]
        ]
    Brock_Statu_Alarm5=[
            [
            ["小灯输入信号","无","有","预留","无效"],
            ["单次循环/刮板张开输入信号","无","有","预留","无效"],
            ["连续循环/滑板下行输入信号","无","有","预留","无效"],
            ["动作反转/刮板闭合输入信号","无","有","预留","无效"]
            ],
            [
            ["翻斗上升输入信号","无","有","预留","无效"],
            ["翻斗下降输入信号","无","有","预留","无效"],
            ["紧急停止/滑板上行输入信号","无","有","预留","无效"],
            ["超载检测输入信号","无","有","预留","无效"]
            ],
            [
            ["滑板下行控制输出","无","有","预留","无效"],
            ["滑板上行控制输出","无","有","预留","无效"],
            ["刮板张开控制输出","无","有","预留","无效"],
            ["刮板闭合控制输出","无","有","预留","无效"]
            ],
            [
            ["溢流阀控制输出","无","有","预留","无效"],
            ["分流换向阀控制输出","无","有","预留","无效"],
            ["翻斗/桶上控制输出","无","有","预留","无效"],
            ["翻斗/桶上控制输出","无","有","预留","无效"]
            ],
            [
            ["填装器举升控制输出","无","有","预留","无效"],
            ["填装器下降控制输出","无","有","预留","无效"],
            ["推铲推出控制输出","无","有","预留","无效"],
            ["推铲缩回控制输出","无","有","预留","无效"]
            ],
            [
            ["合流换向阀控制输出","无","有","预留","无效"],
            ["底盘取力控制输出","无","有","预留","无效"],
            ["音乐喇叭控制输出","无","有","预留","无效"],
            ["工作灯控制输出","无","有","预留","无效"]
            ],
            [
            ["按键板电源控制信号","无","有","预留","无效"],
            ["工作灯控制信号","无","有","预留","无效"],
            ["音乐喇叭控制信号","无","有","预留","无效"],
            ["装载模式控制信号","无","有","预留","无效"]
            ],
            [
            ["卸载模式控制信号","无","有","预留","无效"],
            ["垃圾斗清理控制信号","无","有","预留","无效"],
            ["检修模式控制信号","无","有","预留","无效"],
            ["推铲推出控制信号","无","有","预留","无效"]
            ]
        ]
    Brock_Statu_Alarm6=[
            [
            ["小灯输入信号","无","有","预留","无效"],
            ["紧急停止输入信号","无","有","预留","无效"],
            ["单次循环输入信号","无","有","预留","无效"],
            ["提桶输入信号","无","有","预留","无效"]
            ],
            [
            ["卸桶输入信号","无","有","预留","无效"],
            ["行车准备输入信号","无","有","预留","无效"],
            ["装载准备输入信号","无","有","预留","无效"],
            ["超载检测输入信号","无","有","预留","无效"]
            ],
            [
            ["滑板下行控制输出","无","有","预留","无效"],
            ["滑板上行控制输出","无","有","预留","无效"],
            ["刮板张开控制输出","无","有","预留","无效"],
            ["刮板闭合控制输出","无","有","预留","无效"]
            ],
            [
            ["提桶控制输出","无","有","预留","无效"],
            ["卸桶控制输出","无","有","预留","无效"],
            ["后门开锁控制输出","无","有","预留","无效"],
            ["后门锁止控制输出","无","有","预留","无效"]
            ],
            [
            ["按键板电源控制信号","无","有","预留","无效"],
            ["上装动作急停控制信号","无","有","预留","无效"],
            ["工作灯控制信号","无","有","预留","无效"],
            ["转速切换控制信号","无","有","预留","无效"]
            ],
            [
            ["装载模式控制信号","无","有","预留","无效"],
            ["音乐喇叭控制信号","无","有","预留","无效"],
            ["检修模式控制信号","无","有","预留","无效"],
            ["卸料准备控制信号","无","有","预留","无效"]
            ],
            [
            ["推铲推出控制信号","无","有","预留","无效"],
            ["尾门开锁控制信号","无","有","预留","无效"],
            ["尾门开启控制信号","无","有","预留","无效"],
            ["行车准备控制信号","无","有","预留","无效"]
            ],
            [
            ["推铲缩回控制信号","无","有","预留","无效"],
            ["尾门锁止控制信号","无","有","预留","无效"],
            ["尾门关闭控制信号","无","有","预留","无效"],
            ["蜂鸣器控制输出","无","有","预留","无效"]
            ]
        ]
    Brock_Statu_Alarm7=[
            [
            ["推铲缩回控制信号","无","有","预留","无效"],
            ["填装器上升控制信号","无","有","预留","无效"],
            ["填装器下降控制信号","无","有","预留","无效"],
            ["手自动切换控制信号","无","有","预留","无效"]
            ],
            [
            ["后门关闭到位检测输入信号","无","有","预留","无效"],
            ["滑板下行检测输入信号","无","有","预留","无效"],
            ["滑板上行检测输入信号","无","有","预留","无效"],
            ["刮板位置检测输入信号","无","有","预留","无效"]
            ],
            [
            ["后门开启控制输出","无","有","预留","无效"],
            ["后门关闭控制输出","无","有","预留","无效"],
            ["推铲推出控制输出","无","有","预留","无效"],
            ["推铲缩回控制输出","无","有","预留","无效"]
            ],
            [
            ["蜂鸣器控制输出","无","有","预留","无效"],
            ["工作灯控制输出","无","有","预留","无效"],
            ["","","","",""],
            ["","","","",""]
            ],
            [
            ["填装器举升到位检测输入信号","无","有","预留","无效"],
            ["滑板下行检测输入信号","无","有","预留","无效"],
            ["滑板上行检测输入信号","无","有","预留","无效"],
            ["刮板行程检测输入信号","无","有","预留","无效"]
            ],
            [
            ["填装器下降急停输入信号","无","有","预留","无效"],
            ["","","","",""],
            ["","","","",""],
            ["","","","",""]
            ]
        ]
    Brock_Statu_Alarm8=[
            [
            ["回油滤芯堵塞报警输入信号","无","有","预留","无效"],
            ["液压油泄露报警输入信号","无","有","预留","无效"],
            ["上电输入信号","无","有","预留","无效"],
            ["小灯输入信号","无","有","预留","无效"]
            ],
            [
            ["分动箱开关输入信号","无","有","预留","无效"],
            ["严重故障输入信号","无","有","预留","无效"],
            ["一般故障输入信号","无","有","预留","无效"],
            ["不发电指示输入信号","无","有","预留","无效"]
            ],
            [
            ["副发启动控制输出","无","有","预留","无效"],
            ["副发启动准备输出","无","有","预留","无效"],
            ["左箭头灯控制输出","无","有","预留","无效"],
            ["右箭头灯控制输出","无","有","预留","无效"]
            ],
            [
            ["音乐喇叭控制输出","无","有","预留","无效"],
            ["分动箱分开控制输出","无","有","预留","无效"],
            ["上装电源控制输出","无","有","预留","无效"],
            ["主离合脱开控制输出","无","有","预留","无效"]
            ],
            [
            ["高压水卸荷阀控制输出","无","有","预留","无效"],
            ["左角喷球阀控制输出","无","有","预留","无效"],
            ["右角喷球阀控制输出","无","有","预留","无效"],
            ["喷雾球阀控制输出","无","有","预留","无效"]
            ],
            [
            ["前喷水架球阀控制输出","无","有","预留","无效"],
            ["液压卸荷阀控制输出","无","有","预留","无效"],
            ["升降锁销阀控制输出","无","有","预留","无效"],
            ["定点清淤阀控制输出","无","有","预留","无效"]
            ],
            [
            ["警示灯控制输出","无","有","预留","无效"],
            ["喷水架升阀控制输出","无","有","预留","无效"],
            ["喷水架降阀控制输出","无","有","预留","无效"],
            ["左喷水架伸阀控制输出","无","有","预留","无效"]
            ],
            [
            ["左喷水架缩阀控制输出","无","有","预留","无效"],
            ["右喷水架伸阀控制输出","无","有","预留","无效"],
            ["右喷水架缩阀控制输出","无","有","预留","无效"],
            ["喷水架升降阀控制输出","无","有","预留","无效"]
            ]
        ]
    Brock_Statu_Alarm9=[
            [
            ["副发启动控制信号","无","有","预留","无效"],
            ["分动箱分离控制信号","无","有","预留","无效"],
            ["定点清淤控制信号","无","有","预留","无效"],
            ["左角喷喷水控制信号","无","有","预留","无效"]
            ],
            [
            ["右角喷喷水控制信号","无","有","预留","无效"],
            ["喷水架喷水控制信号","无","有","预留","无效"],
            ["后喷雾喷水控制信号","无","有","预留","无效"],
            ["喷水架左摆控制信号","无","有","预留","无效"]
            ],
            [
            ["喷水架右摆控制信号","无","有","预留","无效"],
            ["喷水架下降控制信号","无","有","预留","无效"],
            ["喷水架上升控制信号","无","有","预留","无效"],
            ["左喷水架缩控制信号","无","有","预留","无效"]
            ],
            [
            ["左喷水架伸控制信号","无","有","预留","无效"],
            ["右喷水架缩控制信号","无","有","预留","无效"],
            ["右喷水架伸控制信号","无","有","预留","无效"],
            ["喷水架降控制信号","无","有","预留","无效"]
            ],
            [
            ["喷水架展开控制信号","无","有","预留","无效"],
            ["警示灯控制信号","无","有","预留","无效"],
            ["音乐喇叭控制信号","无","有","预留","无效"],
            ["左箭头灯控制信号","无","有","预留","无效"]
            ],
            [
            ["右箭头灯控制信号","无","有","预留","无效"],
            ["喷水架伸缩阀控制输出","无","有","预留","无效"],
            ["喷水架左摆阀控制输出","无","有","预留","无效"],
            ["喷水架右摆阀控制输出","无","有","预留","无效"]
            ],
            [
            ["预热指示输入信号","无","有","预留","无效"],
            ["总水阀打开检测输入信号","无","有","预留","无效"],
            ["手持喷枪开关检测输入信号","无","有","预留","无效"],
            ["平台喷枪开关检测关输入信号","无","有","预留","无效"]
            ],
            [
            ["手持喷枪工作开关输入信号","无","有","预留","无效"],
            ["平台喷枪工作开关输入信号","无","有","预留","无效"],
            ["","","","",""],
            ["","","","",""]
            ]
        ]
    Brock_Statu_Alarm10=[
            [
            ["回油滤芯堵塞报警输入信号","无","有","预留","无效"],
            ["液压油泄露报警输入信号","无","有","预留","无效"],
            ["倒车输入信号","无","有","预留","无效"],
            ["小灯输入信号","无","有","预留","无效"]
            ],
            [
            ["手持吸嘴升输入信号","无","有","预留","无效"],
            ["手持吸嘴降输入信号","无","有","预留","无效"],
            ["手持吸嘴提速输入信号","无","有","预留","无效"],
            ["手持吸嘴怠速输入信号","无","有","预留","无效"]
            ],
            [
            ["严重故障输入信号","无","有","预留","无效"],
            ["一般故障输入信号","无","有","预留","无效"],
            ["不发电指示输入信号","无","有","预留","无效"],
            ["预热指示输入信号","无","有","预留","无效"]
            ],
            [
            ["总水阀打开输入信号","无","有","预留","无效"],
            ["箱体撑杆放下输入信号","无","有","预留","无效"],
            ["左冲洗开关输入信号","无","有","预留","无效"],
            ["右冲洗开关输入信号","无","有","预留","无效"]
            ],
            [
            ["污水箱满输入信号","无","有","预留","无效"],
            ["尾门打开输入信号","无","有","预留","无效"],
            ["低水位报警输入信号","无","有","预留","无效"],
            ["后吸嘴闸板开输入信号","无","有","预留","无效"]
            ],
            [
            ["后吸嘴闸板关输入信号","无","有","预留","无效"],
            ["工作灯开关输入信号","无","有","预留","无效"],
            ["警示灯开关输入信号","无","有","预留","无效"],
            ["检修盒反馈信号输入","无","有","预留","无效"]
            ],
            [
            ["右喷杆摆出控制输出","无","有","预留","无效"],
            ["左右阀板打开控制输出","无","有","预留","无效"],
            ["手持吸嘴阀门打开控制输出","无","有","预留","无效"],
            ["左吸嘴挡板打开控制输出","无","有","预留","无效"]
            ],
            [
            ["右吸嘴挡板打开控制输出","无","有","预留","无效"],
            ["手持吸嘴上升开控制输出","无","有","预留","无效"],
            ["手持吸嘴下降开控制输出","无","有","预留","无效"],
            ["左喷杆喷水控制输出","无","有","预留","无效"]
            ]
        ]
    Brock_Statu_Alarm11=[
            [
            ["右喷杆喷水控制输出","无","有","预留","无效"],
            ["吸嘴喷杆喷水控制输出","无","有","预留","无效"],
            ["副发启动控制输出","无","有","预留","无效"],
            ["副发启动准备输出","无","有","预留","无效"]
            ],
            [
            ["隔膜泵控制信号输出","无","有","预留","无效"],
            ["左右角喷手持喷枪控制输出","无","有","预留","无效"],
            ["风机高压清洗控制输出","无","有","预留","无效"],
            ["垃圾箱自洁控制输出","无","有","预留","无效"]
            ],
            [
            ["水路卸荷阀关控制输出","无","有","预留","无效"],
            ["后吸嘴冲洗控制输出","无","有","预留","无效"],
            ["后吸嘴组提升控制输出","无","有","预留","无效"],
            ["降尘水路总阀控制输出","无","有","预留","无效"]
            ],
            [
            ["风机降尘控制输出","无","有","预留","无效"],
            ["左扫盘降尘控制输出","无","有","预留","无效"],
            ["右扫盘降尘控制输出","无","有","预留","无效"],
            ["滚扫降尘控制输出","无","有","预留","无效"]
            ],
            [
            ["左吸嘴降尘控制输出","无","有","预留","无效"],
            ["右吸嘴降尘控制输出","无","有","预留","无效"],
            ["后吸嘴降尘控制输出","无","有","预留","无效"],
            ["低压左冲洗控制输出","无","有","预留","无效"]
            ],
            [
            ["低压右冲洗控制输出","无","有","预留","无效"],
            ["清扫机构卸荷阀控制输出","无","有","预留","无效"],
            ["左扫盘下降控制输出","无","有","预留","无效"],
            ["左扫盘上升控制输出","无","有","预留","无效"]
            ],
            [
            ["右扫盘下降控制输出","无","有","预留","无效"],
            ["右扫盘上升控制输出","无","有","预留","无效"],
            ["左扫盘摆出控制输出","无","有","预留","无效"],
            ["左扫盘收回控制输出","无","有","预留","无效"]
            ],
            [
            ["右扫盘摆出控制输出","无","有","预留","无效"],
            ["右扫盘收回控制输出","无","有","预留","无效"],
            ["左扫盘自适应控制输出","无","有","预留","无效"],
            ["右扫盘自适应控制输出","无","有","预留","无效"]
            ]
        ]
    Brock_Statu_Alarm12=[
            [
            ["吸嘴下降控制输出","无","有","预留","无效"],
            ["吸嘴上升控制输出","无","有","预留","无效"],
            ["吸嘴闸门油缸打开控制输出","无","有","预留","无效"],
            ["吸嘴闸门油缸关闭控制输出","无","有","预留","无效"]
            ],
            [
            ["滚扫旋转控制输出","无","有","预留","无效"],
            ["左扫盘旋转控制输出","无","有","预留","无效"],
            ["右扫盘旋转控制输出","无","有","预留","无效"],
            ["工作灯控制输出","无","有","预留","无效"]
            ],
            [
            ["液压油泄露请停机检查报警","无","有","预留","无效"],
            ["副发机油压力故障请停机检查报警","无","有","预留","无效"],
            ["副发不发电请停机检查报警信号","无","有","预留","无效"],
            ["液压油滤堵塞请停机检查报警信号","无","有","预留","无效"]
            ],
            [
            ["出水阀门关闭不能清洗作业报警信号","无","有","预留","无效"],
            ["清水箱水位低不能清洗作业报警信号","无","有","预留","无效"],
            ["污水箱满请停止作业报警信号","无","有","预留","无效"],
            ["副发水温过高请停机检查报警信号","无","有","预留","无效"]
            ],
            [
            ["副发启停控制信号","无","有","预留","无效"],
            ["副发加速控制信号","无","有","预留","无效"],
            ["副发减速控制信号","无","有","预留","无效"],
            ["清扫强度控制信号","无","有","预留","无效"]
            ],
            [
            ["垃圾箱尾门打开控制信号","无","有","预留","无效"],
            ["垃圾箱尾门关闭控制信号","无","有","预留","无效"],
            ["垃圾箱举升控制信号","无","有","预留","无效"],
            ["垃圾箱下降控制信号","无","有","预留","无效"]
            ],
            [
            ["工作模式控制信号","无","有","预留","无效"],
            ["音乐打开控制信号","无","有","预留","无效"],
            ["扫盘加速控制信号","无","有","预留","无效"],
            ["扫盘减速控制信号","无","有","预留","无效"]
            ],
            [
            ["纯吸模式控制信号","无","有","预留","无效"],
            ["降尘关闭控制信号","无","有","预留","无效"],
            ["左侧作业控制信号","无","有","预留","无效"],
            ["两侧作业控制信号","无","有","预留","无效"]
            ]
        ]
    Brock_Statu_Alarm13=[
            [
            ["右侧作业控制信号","无","有","预留","无效"],
            ["喷雾喷枪控制信号","无","有","预留","无效"],
            ["箱体清淤控制信号","无","有","预留","无效"],
            ["洗扫模式控制信号","无","有","预留","无效"]
            ],
            [
            ["纯洗模式控制信号","无","有","预留","无效"],
            ["滚扫控制信号","无","有","预留","无效"],
            ["中置吸嘴扩容控制信号","无","有","预留","无效"],
            ["后置吸嘴控制信号","无","有","预留","无效"]
            ],
            [
            ["后置吸嘴左摆控制信号","无","有","预留","无效"],
            ["后置吸嘴右摆控制信号","无","有","预留","无效"],
            ["后吸扫控制信号","无","有","预留","无效"],
            ["滚扫加压控制信号","无","有","预留","无效"]
            ],
            [
            ["滚扫减压控制信号","无","有","预留","无效"],
            ["风机冲洗控制信号","无","有","预留","无效"],
            ["风机降尘控制信号","无","有","预留","无效"],
            ["","","","",""]
            ],
            [
            ["警示灯控制输出","无","有","预留","无效"],
            ["液压切换阀控制输出","无","有","预留","无效"],
            ["垃圾箱举升控制输出","无","有","预留","无效"],
            ["垃圾箱下降控制输出","无","有","预留","无效"]
            ],
            [
            ["垃圾箱尾门打开控制输出","无","有","预留","无效"],
            ["垃圾箱尾门关闭控制输出","无","有","预留","无效"],
            ["","","","",""],
            ["","","","",""]
            ]
        ]
    Brock_Statu_Alarm14=[
            [
            ["污水罐升输入信号","无","有","预留","无效"],
            ["污水罐降输入信号","无","有","预留","无效"],
            ["污水罐门打开输入信号","无","有","预留","无效"],
            ["污水罐门关闭输入信号","无","有","预留","无效"]
            ],
            [
            ["臂架上升输入信号","无","有","预留","无效"],
            ["臂架下降输入信号","无","有","预留","无效"],
            ["臂架伸出输入信号","无","有","预留","无效"],
            ["臂架缩回输入信号","无","有","预留","无效"]
            ],
            [
            ["臂架左转输入信号","无","有","预留","无效"],
            ["臂架右转输入信号","无","有","预留","无效"],
            ["吸污口阀打开输入信号","无","有","预留","无效"],
            ["清洗马达打开输入信号","无","有","预留","无效"]
            ],
            [
            ["污水罐举升到位检测输入信号","无","有","预留","无效"],
            ["臂架左转到位检测输入信号","无","有","预留","无效"],
            ["臂架右转到位检测输入信号","无","有","预留","无效"],
            ["污水箱满检测输入信号","无","有","预留","无效"]
            ],
            [
            ["污水罐升控制输出","无","有","预留","无效"],
            ["污水罐降控制输出","无","有","预留","无效"],
            ["污水罐门打开控制输出","无","有","预留","无效"],
            ["污水罐门关闭控制输出","无","有","预留","无效"]
            ],
            [
            ["臂架上升控制输出","无","有","预留","无效"],
            ["臂架下降控制输出","无","有","预留","无效"],
            ["臂架伸出控制输出","无","有","预留","无效"],
            ["臂架缩回控制输出","无","有","预留","无效"]
            ],
            [
            ["臂架左转控制输出","无","有","预留","无效"],
            ["臂架右转控制输出","无","有","预留","无效"],
            ["吸污口阀打开控制输出","无","有","预留","无效"],
            ["清洗马达打开控制输出","无","有","预留","无效"]
            ],
            [
            ["污水箱满指示输出","无","有","预留","无效"],
            ["卸荷阀控制输出","无","有","预留","无效"],
            ["调速阀控制输出","无","有","预留","无效"],
            ["工作灯控制输出","无","有","预留","无效"]
            ]
        ]
    Brock_Statu_Alarm15=[
            [
            ["PTO取力输入信号","无","有","预留","无效"],
            ["液压取力输入信号","无","有","预留","无效"],
            ["清水箱缺水输出","无","有","预留","无效"],
            ["蜂鸣器输出","无","有","预留","无效"]
            ]
        ]
    Brock_Statu_Alarm16=[
            [
            ["上电输入信号","无","有","预留","无效"],
            ["小灯输入信号","无","有","预留","无效"],
            ["总水阀开检测输入信号","无","有","预留","无效"],
            ["伸缩油缸限位检测输入信号","无","有","预留","无效"]
            ],
            [
            ["倒车输入信号","无","有","预留","无效"],
            ["充电指示输入信号","无","有","预留","无效"],
            ["回油滤芯堵塞报警输入信号","无","有","预留","无效"],
            ["液压油泄漏报警输入信号","无","有","预留","无效"]
            ],
            [
            ["左箭头灯控制输出","无","有","预留","无效"],
            ["右箭头灯控制输出","无","有","预留","无效"],
            ["诊断控制输出","无","有","预留","无效"],
            ["内喇叭切换控制输出","无","有","预留","无效"]
            ],
            [
            ["警示灯控制输出","无","有","预留","无效"],
            ["低压水泵控制输出","无","有","预留","无效"],
            ["减速分动箱控制输出","无","有","预留","无效"],
            ["工作灯控制输出","无","有","预留","无效"]
            ],
            [
            ["副发启动控制输出","无","有","预留","无效"],
            ["启动准备控制输出","无","有","预留","无效"],
            ["分动箱控制输出","无","有","预留","无效"],
            ["水泵卸荷关控制输出","无","有","预留","无效"]
            ],
            [
            ["左角喷球阀控制输出","无","有","预留","无效"],
            ["右角喷球阀控制输出","无","有","预留","无效"],
            ["侧角喷球阀控制输出","无","有","预留","无效"],
            ["后角喷球阀控制输出","无","有","预留","无效"]
            ],
            [
            ["取力阀控制输出","无","有","预留","无效"],
            ["换向阀控制输出","无","有","预留","无效"],
            ["滚扫马达控制输出","无","有","预留","无效"],
            ["油缸缩控制输出","无","有","预留","无效"]
            ],
            [
            ["油缸伸控制输出","无","有","预留","无效"],
            ["油缸升控制输出","无","有","预留","无效"],
            ["油缸降控制输出","无","有","预留","无效"],
            ["油缸开控制输出","无","有","预留","无效"]
            ]
        ]
    Brock_Statu_Alarm17=[
            [
            ["副发启动控制信号","无","有","预留","无效"],
            ["音乐喇叭控制信号","无","有","预留","无效"],
            ["取力开关控制信号","无","有","预留","无效"],
            ["低压水泵控制信号","无","有","预留","无效"]
            ],
            [
            ["油缸缩控制信号","无","有","预留","无效"],
            ["油缸伸控制信号","无","有","预留","无效"],
            ["油缸升控制信号","无","有","预留","无效"],
            ["油缸降控制信号","无","有","预留","无效"]
            ],
            [
            ["油缸开控制信号","无","有","预留","无效"],
            ["油缸合控制信号","无","有","预留","无效"],
            ["油缸上摆控制信号","无","有","预留","无效"],
            ["油缸下摆控制信号","无","有","预留","无效"]
            ],
            [
            ["左角喷控制信号","无","有","预留","无效"],
            ["右角喷控制信号","无","有","预留","无效"],
            ["侧角喷控制信号","无","有","预留","无效"],
            ["后角喷控制信号","无","有","预留","无效"]
            ],
            [
            ["滚扫马达控制信号","无","有","预留","无效"],
            ["警示灯控制信号","无","有","预留","无效"],
            ["左箭头灯控制信号","无","有","预留","无效"],
            ["右箭头灯控制信号","无","有","预留","无效"]
            ],
            [
            ["车速降低控制信号","无","有","预留","无效"],
            ["分动箱控制信号","无","有","预留","无效"],
            ["诊断开关控制信号","无","有","预留","无效"],
            ["工作灯控制信号","无","有","预留","无效"]
            ],
            [
            ["油缸合控制输出","无","有","预留","无效"],
            ["油缸上摆控制输出","无","有","预留","无效"],
            ["油缸下摆控制输出","无","有","预留","无效"],
            ["","","","",""]
            ]
        ]
    Brock_Statu_Alarm18=[
            [
            ["ON端输入信号","无","有","预留","无效"],
            ["ST端输入信号","无","有","预留","无效"],
            ["风炮上升输入信号","无","有","预留","无效"],
            ["风炮下降输入信号","无","有","预留","无效"]
            ],
            [
            ["风炮左转输入信号","无","有","预留","无效"],
            ["风炮右转输入信号","无","有","预留","无效"],
            ["液压油温过高输入信号","无","有","预留","无效"],
            ["风炮左转受限输入信号","无","有","预留","无效"]
            ],
            [
            ["风炮右转受限输入信号","无","有","预留","无效"],
            ["风炮上升受限输入信号","无","有","预留","无效"],
            ["风炮下降受限输入信号","无","有","预留","无效"],
            ["喷雾使能开关输入信号","无","有","预留","无效"]
            ],
            [
            ["风机使能开关输入信号","无","有","预留","无效"],
            ["空滤堵塞输入信号","无","有","预留","无效"],
            ["总水阀打开输入信号","无","有","预留","无效"],
            ["","","","",""]
            ],
            [
            ["缺水指示信号输出","无","有","预留","无效"],
            ["超转速指示信号输出","无","有","预留","无效"],
            ["蜂鸣器信号输出","无","有","预留","无效"],
            ["机油压力报警控制输出","无","有","预留","无效"]
            ],
            [
            ["液压散热控制输出","无","有","预留","无效"],
            ["喷雾水开控制输出","无","有","预留","无效"],
            ["动力单元控制输出","无","有","预留","无效"],
            ["风炮上升控制输出","无","有","预留","无效"]
            ],
            [
            ["风炮下降控制输出","无","有","预留","无效"],
            ["风炮左转控制输出","无","有","预留","无效"],
            ["风炮右转控制输出","无","有","预留","无效"],
            ["启动输出控制输出","无","有","预留","无效"]
            ],
            [
            ["熄火输出控制输出","无","有","预留","无效"],
            ["主离合控制输出","无","有","预留","无效"],
            ["高压水卸荷控制输出","无","有","预留","无效"],
            ["水泵液压阀控制输出","无","有","预留","无效"]
            ]
        ]
    analysis0706 = ["自定义消息体长度:", "数据组个数:", "采集起始时间:", "数据块ID：", "数据块个数：", "偏移时间：", "数据项："]
    analysis0706Length = [2, 1, 8, 1, 1, 2, 0]
    dataIDData = ["报警信息块 1:", "报警信息块 2:", "开关量信息块1:", "开关量信息块2：", "车速信息项定义：", "油耗信息块：",
                  "动力信息块：", "工况信息块：", "累积值信息块：", "状态1信息块：", "状态2信息块：","轮胎监测信息：","传动信息: ","状态3信息：","燃气信息：","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","普洛科基本信息: ","普洛科状态报警1信息：","普洛科状态报警2信息：","普洛科状态报警3信息：","普洛科状态报警4信息：","普洛科状态报警5信息：","普洛科状态报警6信息：","普洛科状态报警7信息：","普洛科状态报警8信息：","普洛科状态报警9信息：","普洛科状态报警10信息：","普洛科状态报警11信息：","普洛科状态报警12信息：","普洛科状态报警13信息：","普洛科状态报警14信息：","普洛科状态报警15信息：","普洛科状态报警16信息：","普洛科状态报警17信息：","普洛科状态报警18信息："]
    dataIDDataLength = [7, 7, 3, 8, 0, 0, 0, 0, 0, 0, 4,0,0,0,0,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,0,8,8,8,8,8,8,6,8,8,8,8,8,6,8,1,8,7,8]

    protocolStr = ''
    messageLength = []  # 自定义消息体长度
    dataSetNum = ''  # 数据组个数
    startTime = ''  # 采集起始时间
    dataID = ''  # 数据ID
    dataNum = ''  # 数据块个数
    offsetTime = ''  # 偏移时间
    protocolData = ''  # 数据项
    # ModelHex str = new ModelHex();
    databinary = []  # 八段八bit数组（数据项列表）
    datalength = []  # ID对应的表使用的byte长度

    data_g_str='' # 数据组列表
    data_b_str='' # 数据块列表

    phase = ''  # 相位图
    result = []

    def LogicAisle(self, protocol, header):
        self.result = header
        self.protocolStr = protocol
        self.Init()
        self.result.append(self.analysis0706[0] + self.messageLength + '\n')    # 自定义消息体长度
        self.result.append(self.analysis0706[1] + self.dataSetNum + '\n')  # 数据组个数
        self.result.append(self.analysis0706[2] + self.startTime + '\n')   # 采集起始时间

        #数据组列表
        self.data_g_str=self.protocolStr[22:]

        for i in range(int(self.dataSetNum,16)):
            self.setDataID(self.data_g_str)#2 数据ID
            print int(self.dataID,16)
            self.setDataNum(self.data_g_str)#2 数据块个数
            self.result.append('\n\n'+self.analysis0706[3] + self.dataID + self.dataIDData[(int(self.dataID, 16) - 1)] + '\n')
            self.result.append(self.analysis0706[4] + self.dataNum + '\n')

            if (int(self.dataID, 16) == 1 or int(self.dataID, 16) == 2 or int(self.dataID, 16) == 3 or
                    int(self.dataID, 16) == 4 or int(self.dataID, 16) == 11 or int(self.dataID, 16) == 61 or int(self.dataID, 16) == 62 or int(self.dataID, 16) == 63 or int(self.dataID, 16) == 64 or int(self.dataID, 16) == 65 or int(self.dataID, 16) == 66 or int(self.dataID, 16) == 67 or int(self.dataID, 16) == 68 or int(self.dataID, 16) == 69 or int(self.dataID, 16) == 70 or int(self.dataID, 16) == 71 or int(self.dataID, 16) == 72 or int(self.dataID, 16) == 73 or int(self.dataID, 16) == 74 or int(self.dataID, 16) == 75 or int(self.dataID, 16) == 76 or int(self.dataID, 16) == 77 or int(self.dataID, 16) == 78):
                self.data_b_str = self.data_g_str[4:]  # 数据块列表
                print("数据块列表：" + self.data_b_str)
                for j in range(int(self.dataNum, 16)):
                    self.setOffsetTime(self.data_b_str)  # 4
                    self.setProtocolData(self.data_b_str)  # 16
                    self.result.append('\n'+self.analysis0706[5] + self.offsetTime + '\n')
                    self.result.append(self.analysis0706[6] + self.protocolData + '\n')
                    # self.databinary = str.hexString2binaryString(self.protocolData)
                    self.databinary = self.hex_to_bin(self.protocolData,64)
                    print"self.databinary_tpye", type(self.databinary)
                    print"self.databinary=%s", self.databinary
                    # for i in range(8):
                    # for j in range(len(self.databinary)):
                    # k=j+2
                    # databinarylist={i,self.databinary[j:k]}
                    # print"i",databinarylist[i]
                    # databinarylist.append(self.databinary[i,j])
                    # i=j
                    flag = self.protocolDataStr()
                    temporary = self.AnalysisFT0706(self.databinary, self.dataIDDataLength[(int(self.dataID, 16) - 1)],
                                                    flag)
                    # temporary = self.AnalysisFT0706(databinarylist, self.dataIDDataLength[(int(self.dataID,16)-1)], flag)
                    self.result.append("".join(temporary))
                    self.data_b_str = self.data_b_str[20:]
                self.data_g_str = self.data_g_str[(int(self.dataNum, 16) * 10 + 2) * 2:]
            elif int(self.dataID, 16) == 12:
                self.setPhase(self.data_g_str)
                self.result.append("数据项位图:" + self.phase + '\n')
                phase_bin = self.hex_to_bin(self.phase, 32)
                print("数据相位图：" + phase_bin)
                id_len = 0
                data_count = 0
                con_nums=[]
                for i in range(len(phase_bin)):
                    if phase_bin[32 - i - 1] == '1':
                        id_len += 3
                        con_nums.append(i)
                        data_count += 1
                print("数据项长度：" + str(id_len))
                print("数据项个数：" + str(data_count))
                # 数据块列表
                self.data_b_str = self.data_g_str[12:]
                self.setOffsetTime(self.data_b_str)  # 2
                self.setprotocolData(self.data_b_str, id_len*2)  # n
                print("数据项：" + self.protocolData)
                self.result.append('\n' + self.analysis0706[5] + self.offsetTime + '\n')
                self.result.append(self.analysis0706[6] + self.protocolData + '\n')
                #数据项列表
                for k in range(data_count):
                    con_str=self.protocolData[0:6]
                    self.protocolData=self.protocolData[6:]
                    con_num=con_nums[k]
                    n=int(con_num/4)
                    sen=''
                    if n%4==0: sen='左侧外轮的'
                    elif n%4==1: sen='左侧内轮的'
                    elif n%4==2: sen='右侧外轮的'
                    elif n%4==3: sen='右侧内轮的'
                    self.result.append('轴'+str(con_num)+sen+'胎压：'+con_str[0:2]+'\n')
                    self.result.append('精度：8kPa(H5)/6kPa(M4);偏移量：0；范围 450kPa-900kPa；0xFFFF为无效值\n')
                    self.result.append('轴'+str(con_num)+sen+'胎温：'+con_str[2:6]+'\n')
                    self.result.append('精度：0.03125 偏移量：-273\n')

            else :
                flag = self.protocoldataStr()
                self.setPhase(self.data_g_str)
                self.result.append("数据项位图:" + self.phase + '\n')
                phase_bin=self.hex_to_bin(self.phase,32)
                print("数据相位图："+phase_bin)
                id_len=0
                data_count=0
                for i in range(len(phase_bin)):
                    if phase_bin[32-i-1]=='1'and i<len(flag):
                        id_len +=int(flag[i][1])
                        data_count +=1
                print("数据项长度："+str(id_len))
                # 数据块列表
                self.data_b_str = self.data_g_str[12:]
                for j in range(int(self.dataNum, 16)):
                    self.setOffsetTime(self.data_b_str)  # 2
                    self.setprotocolData(self.data_b_str, id_len)  # n
                    print("数据项："+self.protocolData)
                    self.result.append('\n'+self.analysis0706[5] + self.offsetTime + '\n')
                    self.result.append(self.analysis0706[6] + self.protocolData + '\n')
                    temporary = self.AnalysisNum(self.protocolData, flag,phase_bin)
                    print"protocoldataStr_temporary", type(temporary)
                    self.result.append("".join(temporary))
                    self.data_b_str = self.data_b_str[4 + id_len:]
                    self.data_g_str = self.data_b_str


    def hex_to_bin(self,s,s_len):
        s = bin(int(s, 16))
        s = s[2:]
        s = s.zfill(s_len)
        return s

    def setPhase(self,s):
        self.phase = s[4:12]
        print"setPhase"

    def setprotocolData(self,s,id_len):
        self.protocolData = s[4:4+id_len]
        print"setprotocolData"

    def protocoldataStr(self):
        flag = []
        if (int(self.dataID,16) == 5):
            flag = self.Speed
        elif(int(self.dataID,16)== 6):
            flag = self.FuelFonsumption
        elif(int(self.dataID,16) == 7):
            flag = self.Power
        elif(int(self.dataID,16) == 8):
            flag = self.Condition
        elif(int(self.dataID,16) == 9):
            flag = self.Accumulation
        elif(int(self.dataID,16) == 10):
            flag = self.Status1
        elif(int(self.dataID,16) == 13):
            flag = self.Transmission_Info
        elif(int(self.dataID,16) == 14):
            flag = self.Status3
        elif(int(self.dataID,16) == 15):
            flag = self.Gas_Info
        elif(int(self.dataID,16) == 60):
            flag = self.Brock_BasicInfo
        else:
            print"protocoldataStr"
        return flag

    def AnalysisNum(self,protocolData,flag,phase_bin):
        result=[]
        mark = 0
        print"flag",len(flag)
        for i in range(len(flag)):
            if phase_bin[32-i-1]=='1':
                #result.append(flag[i][0] + protocolData[mark: (mark + Integer.parseInt(flag[i][1]))] + '\n')
                print"AnalysisNum",i
                print"flag0",flag[i][0]
                print"flag1",flag[i][1]
                print"mark",mark
                print"flagtype",type(flag[i][0])
                print"0protocolData[mark: (mark + int(flag[i][1],16))]",type(protocolData[mark: (mark + int(flag[i][1],16))])
                result.append(flag[i][0] + protocolData[mark: (mark + int(flag[i][1],16))] + '\n')
                print"1protocolData[mark: (mark + int(flag[i][1],16))]",type(protocolData[mark: (mark + int(flag[i][1],16))])
                #mark = mark + Integer.parseInt(flag[i][1])
                mark = mark + int(flag[i][1],16)
                print"AnalysisNum_result",result
                print"AnalysisNum_result_type",type(result)
        return result

    def setOffsetTime(self, s):
        self.offsetTime = s[0:4]
        print"setOffsetTime"

    def setProtocolData(self, s):
        self.protocolData = s[4:20]
        print"setProtocolData"

    def protocolDataStr(self):
        flag = []
        if(int(self.dataID,16) == 1):
            flag = self.Alarm1
        elif(int(self.dataID,16) == 2):
            flag = self.Alarm2
        elif(int(self.dataID,16) == 3):
            flag = self.Switch1
        elif(int(self.dataID,16) == 4):
            flag = self.Switch2
        elif(int(self.dataID,16) == 11):
            flag = self.Status2
        elif(int(self.dataID,16) == 61):
            flag = self.Brock_Statu_Alarm1
        elif(int(self.dataID,16) == 62):
            flag = self.Brock_Statu_Alarm2
        elif(int(self.dataID,16) == 63):
            flag = self.Brock_Statu_Alarm3
        elif(int(self.dataID,16) == 64):
            flag = self.Brock_Statu_Alarm4
        elif(int(self.dataID,16) == 65):
            flag = self.Brock_Statu_Alarm5
        elif(int(self.dataID,16) == 66):
            flag = self.Brock_Statu_Alarm6
        elif(int(self.dataID,16) == 67):
            flag = self.Brock_Statu_Alarm7
        elif(int(self.dataID,16) == 68):
            flag = self.Brock_Statu_Alarm8
        elif(int(self.dataID,16) == 69):
            flag = self.Brock_Statu_Alarm9
        elif(int(self.dataID,16) == 70):
            flag = self.Brock_Statu_Alarm10
        elif(int(self.dataID,16) == 71):
            flag = self.Brock_Statu_Alarm11
        elif(int(self.dataID,16) == 72):
            flag = self.Brock_Statu_Alarm12
        elif(int(self.dataID,16) == 73):
            flag = self.Brock_Statu_Alarm13
        elif(int(self.dataID,16) == 74):
            flag = self.Brock_Statu_Alarm14
        elif(int(self.dataID,16) == 75):
            flag = self.Brock_Statu_Alarm15
        elif(int(self.dataID,16) == 76):
            flag = self.Brock_Statu_Alarm16
        elif(int(self.dataID,16) == 77):
            flag = self.Brock_Statu_Alarm17
        elif(int(self.dataID,16) == 78):
            flag = self.Brock_Statu_Alarm18
        else:
            print"protocolDataStr"
        return flag

    def AnalysisFT0706(self, a, x, b):
        print"AnalysisFT0706"
        result = []
        c = 0
        for i in range(x):
            t2b = a[c:(i + 1) * 8]
            c = (i + 1) * 8
            print "ttttttt", t2b
            for j in range(4):
                # Tmp2Bit=a[i][2*j:2*j+2]
                Tmp2Bit = t2b[8-(j+1)*2:8-j*2]
                print("i=%d,j=%d,Tmp2Bit=%s", i, j, Tmp2Bit)
                if (Tmp2Bit == "00"):
                    result.append(b[i][j][0] + "  :00:  " + b[i][j][1] + '\n')
                if (Tmp2Bit == "01"):
                    result.append(b[i][j][0] + "  :01:  " + b[i][j][2] + '\n')
                if (Tmp2Bit == "10"):
                    result.append(b[i][j][0] + "  :10  " + b[i][j][3] + '\n')
                if (Tmp2Bit == "11"):
                    result.append(b[i][j][0] + "  :11  " + b[i][j][4] + '\n')
        return result

    def setDataID(self, s):
        # self.dataID = Integer.parseInt(self.protocolStr[22,24], 16)
        self.dataID = s[:2]
        print"self.setDataID", self.dataID

    def setDataNum(self, s):
        # self.dataNum = Integer.parseInt(self.protocolStr[24,26], 16)
        self.dataNum = s[2:4]
        print"setDataNum"

    def Init(self):
        self.setMessageLength()
        self.setDataSetNum()
        self.setStartTime()

    def setMessageLength(self):
        self.messageLength = self.protocolStr[0:4]
        print"setMessageLength"

    def setDataSetNum(self):
        #self.dataSetNum = Integer.parseInt(self.protocolStr[4:6], 16)
        self.dataSetNum =self.protocolStr[4:6]
        print"setDataSetNum"

    def setStartTime(self):
        self.startTime = self.protocolStr[6:22]
        print"setStartTime "
